clear;clc;
load('data_water_quality.mat')

% X中有4个指标
% 含氧量为极大型指标
% PH值为中间型指标 最佳值为7
% 细菌个数为极小值指标
% 植物性营养物质为区间型指标 最佳区间为[10,20]

% 第一步，进行指标正向化处理（在X的基础上）

X(:,2)=transTargetType(X(:,2),"Mid2Max",7);
X(:,3)=transTargetType(X(:,3),"Min2Max");
X(:,4)=transTargetType(X(:,4),"Inter2Max",[10,20]);

% 第二步，进行标准化，消除量纲（得到Z）

XSize=size(X);
SUMSQ=sqrt(sum(X.*X));% 每列的平方和开根号
SUMSQ=repmat(SUMSQ,[XSize(1),1]);
Z=X./SUMSQ;

% 第三步，计算得分（得到S）

ZMAX=max(Z);% 定义最大值（每一列的最大值）
ZMIN=min(Z);% 定义最小值（每一列的最小值）
ZMAX=repmat(ZMAX,[XSize(1),1]);
ZMIN=repmat(ZMIN,[XSize(1),1]);
DMAX=sqrt(sum((Z-ZMAX).^2,2));% 评价对象与最大值的距离
DMIN=sqrt(sum((Z-ZMIN).^2,2));% 评价对象与最小值的距离
S=DMIN./(DMAX+DMIN);

% 结果归一化

S=S/sum(S);
[SSort,index]=sort(S);













